package io.gitee.twoke.generator.engine;

import io.gitee.twoke.generator.engine.impl.template.*;

public interface TemplateService {

    CreateTemplateBuilder createTemplate();

    CreateTemplateGroupBuilder createTemplateGroup();

    Template findById(String id);

    TemplateFileQuery createTemplateFileQuery();

    /**
     * 删除模板
     * 会级联删除模板下的文件
     * @param id
     */
    void deleteTemplate(String id);

    /**
     * 删除模板组
     * 不会级联删除模板，只会解除关系
     * @param id
     */
    void deleteTemplateGroup(String id);

    /**
     * 删除模板文件
     * @param id
     */
    void deleteTemplateFile(String id);

    /**
     * 绑定模板组和模板
     * @param groupId
     * @param templateId
     */
    void  bind(String groupId, String templateId);

    /**
     * 解绑模板组和模板
     * @param groupId
     * @param templateId
     */
    void  unbind(String groupId, String templateId);
}
